<?php

namespace app\admin\controller;

use think\Db;

class User extends AdminController
{
    public function index()
    {
        // 原生查询
//        $list = Db::query("SELECT * FROM user");
//        $list = Db::query("SELECT * FROM user WHERE id=?", [3]);
        // DB类模型查询
//        $list = Db::table('user')->order(['id'=>'desc'])->select();
        // 助手函数查询
        $list = db('lover')->limit(2)->select();
        dump($list);
    }

    public function insert()
    {
        // 原生
//        $result = Db::execute("INSERT INTO user (id,name,sex) VALUES (null, 'kk1', '55')");
//        $result = Db::execute("INSERT INTO lover (id,name) VALUES (:id, :name)", ['id'=>null, 'name'=>'kk2']);

        // 准备数据
        $data = ['name' => 'kk5', 'age' => '88'];
        // DB类模型
//        $result = Db::table('user')->insert($data);
//        $result = Db::table('user')->insertGetId($data);

        // 助手函数
        $result = db('user')->insert($data);

        dump($result);
    }

    public function delete()
    {
        // 原生
//        $result = Db::execute("DELETE FROM user WHERE name='kk3'");
        // DB类模型
//        $result = Db::table('user')->delete(52);
//        $result = Db::table('user')->where('name','kk5')->delete();
        // 助手函数
        $result = db('user')->delete(48);
        dump($result);
    }


    public function update()
    {
        // 原生
//        $result = Db::execute("UPDATE user SET age='20' WHERE id='44'");
        // DB类模型
//        $result = Db::table('user')->where('id','44')->update(['age'=>'99']);
        // 助手函数
        $result = db('user')->where('id', '44')->update(['age' => '100']);
        dump($result);
    }

    public function sw()
    {
//        // 自动控制事务 (闭包)
//        Db::transaction(function () {
//            $userdata = [
//                'name' => '勇哥',
//                'age' => '30',
//                'sex' => '2'
//            ];
//            $id = Db::table('user')->insertGetId($userdata);
//            var_dump('用户的ID: ' . $id);
//
//            $loverdata = [
//                'name' => '厉旭',
//                'sex' => '2',
//                'user_id' => $id
//            ];
//            Db::table('lover')->insert($loverdata);
//
//            echo '关系建立完成!';
//        });

        // 手动控制事务
        // 启动事务
        Db::startTrans();
        try{
            $userdata = [
                'name' => '高勇',
                'age' => '35',
                'sex' => '0'
            ];
            $id = Db::table('user')->insertGetId($userdata);
            var_dump('用户的ID: ' . $id);

            $loverdata = [
                'name' => '班长',
                'sex' => '1',
                'user_id' => $id
            ];
            Db::table('lover')->insert($loverdata);

            // 提交事务
            Db::commit();
            echo '关系建立完成!!!';
        } catch (\Exception $e) {
            echo '关系建立失败...';
            // 回滚事务
            Db::rollback();
        }
    }


}
